package base_grammar

import "fmt"

func For_f11() {
	for i := 0; i < 10; i++ {
	LABEL_2:
		for j := 0; j < 10; j++ {
			if i == 2 && j == 2 {
				continue LABEL_2
			}
			fmt.Printf("%v, %v\n", i, j)
		}
	}
}

func For_f10() {

	for i := 0; i < 10; i++ {
		if i%2 != 0 {
			continue
		}
		fmt.Printf("i: %v\n", i)
	}

}

func For_f9() {
LABEL_1:
	for i := 0; i < 10; i++ {
		fmt.Printf("i: %v\n", i)
		if i >= 5 {
			// break到指定标签
			break LABEL_1
		}
	}
	fmt.Println("结束")
}

func For_f8() {
	// 遍历字符串
	hello := "hello go"
	for _, v := range hello {
		fmt.Printf("v: %c\n", v)
	}

}

func For_f7() {
	m := make(map[string]string, 0)
	m["name"] = "zhoujl"
	m["email"] = "1002587665@qq.com"
	m["age"] = "20"

	for key, value := range m {
		fmt.Printf("%v:%v \n", key, value)
	}

}

func For_f6() {
	// 切片 slice
	s := []int{1, 2, 3}
	for _, v := range s {
		fmt.Printf("v: %v\n", v)
	}
}

func For_f5() {
	// for range循环 数组
	arr := [...]int{1, 2, 3, 4, 5}
	for idx, v := range arr {
		fmt.Printf("idx: %v", idx)
		fmt.Printf("v: %v\n", v)
	}
}

func For_f4() {
	// 永真循环  类似java的while(true)   go中没有while  do...while
	for {
		fmt.Println("一直执行")
	}
}

func For_f3() {
	i := 0
	for i < 10 {
		fmt.Printf("i: %v\n", i)
		i++
	}

}

func For_f2() {
	i := 0
	for ; i < 10; i++ {
		fmt.Printf("i: %v\n", i)
	}

}

func For_f1() {
	for i := 0; i < 10; i++ {
		fmt.Printf("i: %v\n", i)
	}

}
